compararNumeros que receba dois números e retorne true se eles forem iguais e a diferença entre eles se forem diferentes.classificarIMC que receba o IMC e retorne a classificação:
ehMenor e outra ehMaior, que recebem três números e retorne o menor e o maior valor entre eles, respectivamente.calcularDesconto que receba o valor de uma compra e retorne:
--- # exercícios para mudar 4. Escreva uma função em Python que calcule a média de uma lista de números. 5. Escreva uma função em Python que encontre o maior valor em uma lista de números. 6. Escreva uma função em Python que inverta uma lista de números. 7. Escreva uma função em Python que encontre a soma dos valores pares em uma lista de números. 8. Escreva uma função em Python que calcule a soma dos elementos de uma matriz. 9. Escreva uma função em Python que calcule a média dos elementos de uma matriz.
--- # Arrow Functions O JavaScript também oferece uma sintaxe mais concisa para criar funções chamada **Arrow Functions** (funções seta). Sintaxe básica: ```javascript // Função tradicional function soma(a, b) { return a + b; } // Arrow function const soma = (a, b) => { return a + b; }; // Arrow function mais concisa (quando há apenas um return) const soma = (a, b) => a + b; // Arrow function com um parâmetro (parênteses opcionais) const dobrar = x => x * 2; // Arrow function sem parâmetros const saudar = () => console.log('Olá!'); ``` --- # Arrow Functions vs Funções Tradicionais **Vantagens das Arrow Functions:** - Sintaxe mais concisa - Útil para funções simples e callbacks - Herdam o contexto (`this`) do escopo onde foram definidas **Quando usar cada uma:** - **Funções tradicionais:** Para funções mais complexas, métodos de objetos, construtores - **Arrow functions:** Para funções simples, callbacks, operações funcionais ```javascript // Exemplo com callback const numeros = [1, 2, 3, 4, 5]; // Usando arrow function em um map const dobrados = numeros.map(num => num * 2); console.log(dobrados); // [2, 4, 6, 8, 10] ```
--- # Funções - parâmetros Pode-se passar os argumentos nomeando os parâmetros (usando objetos) ```javascript function nomeCompleto(primeiroNome, segundoNome, sobrenome) { console.log(`Nome completo: ${primeiroNome} ${segundoNome} ${sobrenome}`); } // Passando argumentos nomeados usando um objeto function nomeCompletoObj({primeiroNome, segundoNome, sobrenome}) { console.log(`Nome completo: ${primeiroNome} ${segundoNome} ${sobrenome}`); } nomeCompletoObj({ primeiroNome: 'Mario', segundoNome: 'Sérgio', sobrenome: 'Augusto' }); nomeCompletoObj({ sobrenome: 'Augusto', primeiroNome: 'Mario', segundoNome: 'Sérgio' }); ```
--- # Funções - retorno de valor Exemplo de retorno com múltiplos valores (usando array) ```javascript function operacao(a, b) { let soma = a + b; let subtracao = a - b; return [soma, subtracao]; } let [resultado1, resultado2] = operacao(3, 4); console.log(`Resultado da soma é ${resultado1}`); console.log(`Resultado da subtração é ${resultado2}`); ``` Exemplo de retorno com múltiplos valores (usando objeto) ```javascript function operacaoObj(a, b) { return { soma: a + b, subtracao: a - b }; } let {soma, subtracao} = operacaoObj(3, 4); console.log(`Resultado da soma é ${soma}`); console.log(`Resultado da subtração é ${subtracao}`); ```